#pragma once
// MESSAGE IBEE_TRANSMIT_DATA PACKING

#define MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA 12916


typedef struct __mavlink_ibee_transmit_data_t {
 float t265_qw; /*<  float*/
 float t265_qx; /*<  float*/
 float t265_qy; /*<  float*/
 float t265_qz; /*<  float*/
 float t265_x; /*<  float*/
 float t265_y; /*<  float*/
 float t265_z; /*<  float*/
 float t265_vx; /*<  float*/
 float t265_vy; /*<  float*/
 float t265_vz; /*<  float*/
 float gnss_pose_x; /*<  float*/
 float gnss_pose_y; /*<  float*/
 float gnss_speed_x; /*<  float*/
 float gnss_speed_y; /*<  float*/
 float mv_pose_y; /*<  float*/
 float mv_speed_y; /*<  float*/
 float cpu_usage; /*<  float*/
 uint32_t t265_restart_cnt; /*<  uint32_t*/
 uint16_t t265_frame_id; /*<  uint16_t*/
 uint16_t gnss_frame_id; /*<  uint16_t*/
 uint16_t mv_frame_id; /*<  uint16_t*/
 int8_t t265_data_valid; /*<  int8_t*/
 int8_t gnss_data_valid; /*<  int8_t*/
 int8_t gnss_fix_type; /*<  int8_t*/
 int8_t mv_data_valid; /*<  int8_t*/
 int8_t network_valid; /*<  int8_t*/
 uint8_t udist_mount_status; /*<  uint8_t*/
 uint8_t oak_status; /*<  uint8_t*/
} mavlink_ibee_transmit_data_t;


#define MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN 85
#define MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN 85
#define MAVLINK_MSG_ID_12916_LEN 85
#define MAVLINK_MSG_ID_12916_MIN_LEN 85

#define MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC 108
#define MAVLINK_MSG_ID_12916_CRC 108



#if MAVLINK_COMMAND_24BIT
#define MAVLINK_MESSAGE_INFO_IBEE_TRANSMIT_DATA { \
    12916, \
    "IBEE_TRANSMIT_DATA", \
    28, \
    {  { "t265_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_ibee_transmit_data_t, t265_qw) }, \
         { "t265_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_ibee_transmit_data_t, t265_qx) }, \
         { "t265_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ibee_transmit_data_t, t265_qy) }, \
         { "t265_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ibee_transmit_data_t, t265_qz) }, \
         { "t265_x", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ibee_transmit_data_t, t265_x) }, \
         { "t265_y", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ibee_transmit_data_t, t265_y) }, \
         { "t265_z", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ibee_transmit_data_t, t265_z) }, \
         { "t265_vx", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ibee_transmit_data_t, t265_vx) }, \
         { "t265_vy", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ibee_transmit_data_t, t265_vy) }, \
         { "t265_vz", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ibee_transmit_data_t, t265_vz) }, \
         { "t265_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 72, offsetof(mavlink_ibee_transmit_data_t, t265_frame_id) }, \
         { "t265_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 78, offsetof(mavlink_ibee_transmit_data_t, t265_data_valid) }, \
         { "gnss_pose_x", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ibee_transmit_data_t, gnss_pose_x) }, \
         { "gnss_pose_y", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ibee_transmit_data_t, gnss_pose_y) }, \
         { "gnss_speed_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ibee_transmit_data_t, gnss_speed_x) }, \
         { "gnss_speed_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ibee_transmit_data_t, gnss_speed_y) }, \
         { "gnss_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 74, offsetof(mavlink_ibee_transmit_data_t, gnss_frame_id) }, \
         { "gnss_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 79, offsetof(mavlink_ibee_transmit_data_t, gnss_data_valid) }, \
         { "gnss_fix_type", NULL, MAVLINK_TYPE_INT8_T, 0, 80, offsetof(mavlink_ibee_transmit_data_t, gnss_fix_type) }, \
         { "mv_pose_y", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ibee_transmit_data_t, mv_pose_y) }, \
         { "mv_speed_y", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ibee_transmit_data_t, mv_speed_y) }, \
         { "mv_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 76, offsetof(mavlink_ibee_transmit_data_t, mv_frame_id) }, \
         { "mv_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 81, offsetof(mavlink_ibee_transmit_data_t, mv_data_valid) }, \
         { "cpu_usage", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ibee_transmit_data_t, cpu_usage) }, \
         { "network_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 82, offsetof(mavlink_ibee_transmit_data_t, network_valid) }, \
         { "t265_restart_cnt", NULL, MAVLINK_TYPE_UINT32_T, 0, 68, offsetof(mavlink_ibee_transmit_data_t, t265_restart_cnt) }, \
         { "udist_mount_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ibee_transmit_data_t, udist_mount_status) }, \
         { "oak_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ibee_transmit_data_t, oak_status) }, \
         } \
}
#else
#define MAVLINK_MESSAGE_INFO_IBEE_TRANSMIT_DATA { \
    "IBEE_TRANSMIT_DATA", \
    28, \
    {  { "t265_qw", NULL, MAVLINK_TYPE_FLOAT, 0, 0, offsetof(mavlink_ibee_transmit_data_t, t265_qw) }, \
         { "t265_qx", NULL, MAVLINK_TYPE_FLOAT, 0, 4, offsetof(mavlink_ibee_transmit_data_t, t265_qx) }, \
         { "t265_qy", NULL, MAVLINK_TYPE_FLOAT, 0, 8, offsetof(mavlink_ibee_transmit_data_t, t265_qy) }, \
         { "t265_qz", NULL, MAVLINK_TYPE_FLOAT, 0, 12, offsetof(mavlink_ibee_transmit_data_t, t265_qz) }, \
         { "t265_x", NULL, MAVLINK_TYPE_FLOAT, 0, 16, offsetof(mavlink_ibee_transmit_data_t, t265_x) }, \
         { "t265_y", NULL, MAVLINK_TYPE_FLOAT, 0, 20, offsetof(mavlink_ibee_transmit_data_t, t265_y) }, \
         { "t265_z", NULL, MAVLINK_TYPE_FLOAT, 0, 24, offsetof(mavlink_ibee_transmit_data_t, t265_z) }, \
         { "t265_vx", NULL, MAVLINK_TYPE_FLOAT, 0, 28, offsetof(mavlink_ibee_transmit_data_t, t265_vx) }, \
         { "t265_vy", NULL, MAVLINK_TYPE_FLOAT, 0, 32, offsetof(mavlink_ibee_transmit_data_t, t265_vy) }, \
         { "t265_vz", NULL, MAVLINK_TYPE_FLOAT, 0, 36, offsetof(mavlink_ibee_transmit_data_t, t265_vz) }, \
         { "t265_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 72, offsetof(mavlink_ibee_transmit_data_t, t265_frame_id) }, \
         { "t265_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 78, offsetof(mavlink_ibee_transmit_data_t, t265_data_valid) }, \
         { "gnss_pose_x", NULL, MAVLINK_TYPE_FLOAT, 0, 40, offsetof(mavlink_ibee_transmit_data_t, gnss_pose_x) }, \
         { "gnss_pose_y", NULL, MAVLINK_TYPE_FLOAT, 0, 44, offsetof(mavlink_ibee_transmit_data_t, gnss_pose_y) }, \
         { "gnss_speed_x", NULL, MAVLINK_TYPE_FLOAT, 0, 48, offsetof(mavlink_ibee_transmit_data_t, gnss_speed_x) }, \
         { "gnss_speed_y", NULL, MAVLINK_TYPE_FLOAT, 0, 52, offsetof(mavlink_ibee_transmit_data_t, gnss_speed_y) }, \
         { "gnss_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 74, offsetof(mavlink_ibee_transmit_data_t, gnss_frame_id) }, \
         { "gnss_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 79, offsetof(mavlink_ibee_transmit_data_t, gnss_data_valid) }, \
         { "gnss_fix_type", NULL, MAVLINK_TYPE_INT8_T, 0, 80, offsetof(mavlink_ibee_transmit_data_t, gnss_fix_type) }, \
         { "mv_pose_y", NULL, MAVLINK_TYPE_FLOAT, 0, 56, offsetof(mavlink_ibee_transmit_data_t, mv_pose_y) }, \
         { "mv_speed_y", NULL, MAVLINK_TYPE_FLOAT, 0, 60, offsetof(mavlink_ibee_transmit_data_t, mv_speed_y) }, \
         { "mv_frame_id", NULL, MAVLINK_TYPE_UINT16_T, 0, 76, offsetof(mavlink_ibee_transmit_data_t, mv_frame_id) }, \
         { "mv_data_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 81, offsetof(mavlink_ibee_transmit_data_t, mv_data_valid) }, \
         { "cpu_usage", NULL, MAVLINK_TYPE_FLOAT, 0, 64, offsetof(mavlink_ibee_transmit_data_t, cpu_usage) }, \
         { "network_valid", NULL, MAVLINK_TYPE_INT8_T, 0, 82, offsetof(mavlink_ibee_transmit_data_t, network_valid) }, \
         { "t265_restart_cnt", NULL, MAVLINK_TYPE_UINT32_T, 0, 68, offsetof(mavlink_ibee_transmit_data_t, t265_restart_cnt) }, \
         { "udist_mount_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 83, offsetof(mavlink_ibee_transmit_data_t, udist_mount_status) }, \
         { "oak_status", NULL, MAVLINK_TYPE_UINT8_T, 0, 84, offsetof(mavlink_ibee_transmit_data_t, oak_status) }, \
         } \
}
#endif

/**
 * @brief Pack a ibee_transmit_data message
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 *
 * @param t265_qw  float
 * @param t265_qx  float
 * @param t265_qy  float
 * @param t265_qz  float
 * @param t265_x  float
 * @param t265_y  float
 * @param t265_z  float
 * @param t265_vx  float
 * @param t265_vy  float
 * @param t265_vz  float
 * @param t265_frame_id  uint16_t
 * @param t265_data_valid  int8_t
 * @param gnss_pose_x  float
 * @param gnss_pose_y  float
 * @param gnss_speed_x  float
 * @param gnss_speed_y  float
 * @param gnss_frame_id  uint16_t
 * @param gnss_data_valid  int8_t
 * @param gnss_fix_type  int8_t
 * @param mv_pose_y  float
 * @param mv_speed_y  float
 * @param mv_frame_id  uint16_t
 * @param mv_data_valid  int8_t
 * @param cpu_usage  float
 * @param network_valid  int8_t
 * @param t265_restart_cnt  uint32_t
 * @param udist_mount_status  uint8_t
 * @param oak_status  uint8_t
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_pack(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg,
                               float t265_qw, float t265_qx, float t265_qy, float t265_qz, float t265_x, float t265_y, float t265_z, float t265_vx, float t265_vy, float t265_vz, uint16_t t265_frame_id, int8_t t265_data_valid, float gnss_pose_x, float gnss_pose_y, float gnss_speed_x, float gnss_speed_y, uint16_t gnss_frame_id, int8_t gnss_data_valid, int8_t gnss_fix_type, float mv_pose_y, float mv_speed_y, uint16_t mv_frame_id, int8_t mv_data_valid, float cpu_usage, int8_t network_valid, uint32_t t265_restart_cnt, uint8_t udist_mount_status, uint8_t oak_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN];
    _mav_put_float(buf, 0, t265_qw);
    _mav_put_float(buf, 4, t265_qx);
    _mav_put_float(buf, 8, t265_qy);
    _mav_put_float(buf, 12, t265_qz);
    _mav_put_float(buf, 16, t265_x);
    _mav_put_float(buf, 20, t265_y);
    _mav_put_float(buf, 24, t265_z);
    _mav_put_float(buf, 28, t265_vx);
    _mav_put_float(buf, 32, t265_vy);
    _mav_put_float(buf, 36, t265_vz);
    _mav_put_float(buf, 40, gnss_pose_x);
    _mav_put_float(buf, 44, gnss_pose_y);
    _mav_put_float(buf, 48, gnss_speed_x);
    _mav_put_float(buf, 52, gnss_speed_y);
    _mav_put_float(buf, 56, mv_pose_y);
    _mav_put_float(buf, 60, mv_speed_y);
    _mav_put_float(buf, 64, cpu_usage);
    _mav_put_uint32_t(buf, 68, t265_restart_cnt);
    _mav_put_uint16_t(buf, 72, t265_frame_id);
    _mav_put_uint16_t(buf, 74, gnss_frame_id);
    _mav_put_uint16_t(buf, 76, mv_frame_id);
    _mav_put_int8_t(buf, 78, t265_data_valid);
    _mav_put_int8_t(buf, 79, gnss_data_valid);
    _mav_put_int8_t(buf, 80, gnss_fix_type);
    _mav_put_int8_t(buf, 81, mv_data_valid);
    _mav_put_int8_t(buf, 82, network_valid);
    _mav_put_uint8_t(buf, 83, udist_mount_status);
    _mav_put_uint8_t(buf, 84, oak_status);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN);
#else
    mavlink_ibee_transmit_data_t packet;
    packet.t265_qw = t265_qw;
    packet.t265_qx = t265_qx;
    packet.t265_qy = t265_qy;
    packet.t265_qz = t265_qz;
    packet.t265_x = t265_x;
    packet.t265_y = t265_y;
    packet.t265_z = t265_z;
    packet.t265_vx = t265_vx;
    packet.t265_vy = t265_vy;
    packet.t265_vz = t265_vz;
    packet.gnss_pose_x = gnss_pose_x;
    packet.gnss_pose_y = gnss_pose_y;
    packet.gnss_speed_x = gnss_speed_x;
    packet.gnss_speed_y = gnss_speed_y;
    packet.mv_pose_y = mv_pose_y;
    packet.mv_speed_y = mv_speed_y;
    packet.cpu_usage = cpu_usage;
    packet.t265_restart_cnt = t265_restart_cnt;
    packet.t265_frame_id = t265_frame_id;
    packet.gnss_frame_id = gnss_frame_id;
    packet.mv_frame_id = mv_frame_id;
    packet.t265_data_valid = t265_data_valid;
    packet.gnss_data_valid = gnss_data_valid;
    packet.gnss_fix_type = gnss_fix_type;
    packet.mv_data_valid = mv_data_valid;
    packet.network_valid = network_valid;
    packet.udist_mount_status = udist_mount_status;
    packet.oak_status = oak_status;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA;
    return mavlink_finalize_message(msg, system_id, component_id, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
}

/**
 * @brief Pack a ibee_transmit_data message on a channel
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param t265_qw  float
 * @param t265_qx  float
 * @param t265_qy  float
 * @param t265_qz  float
 * @param t265_x  float
 * @param t265_y  float
 * @param t265_z  float
 * @param t265_vx  float
 * @param t265_vy  float
 * @param t265_vz  float
 * @param t265_frame_id  uint16_t
 * @param t265_data_valid  int8_t
 * @param gnss_pose_x  float
 * @param gnss_pose_y  float
 * @param gnss_speed_x  float
 * @param gnss_speed_y  float
 * @param gnss_frame_id  uint16_t
 * @param gnss_data_valid  int8_t
 * @param gnss_fix_type  int8_t
 * @param mv_pose_y  float
 * @param mv_speed_y  float
 * @param mv_frame_id  uint16_t
 * @param mv_data_valid  int8_t
 * @param cpu_usage  float
 * @param network_valid  int8_t
 * @param t265_restart_cnt  uint32_t
 * @param udist_mount_status  uint8_t
 * @param oak_status  uint8_t
 * @return length of the message in bytes (excluding serial stream start sign)
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_pack_chan(uint8_t system_id, uint8_t component_id, uint8_t chan,
                               mavlink_message_t* msg,
                                   float t265_qw,float t265_qx,float t265_qy,float t265_qz,float t265_x,float t265_y,float t265_z,float t265_vx,float t265_vy,float t265_vz,uint16_t t265_frame_id,int8_t t265_data_valid,float gnss_pose_x,float gnss_pose_y,float gnss_speed_x,float gnss_speed_y,uint16_t gnss_frame_id,int8_t gnss_data_valid,int8_t gnss_fix_type,float mv_pose_y,float mv_speed_y,uint16_t mv_frame_id,int8_t mv_data_valid,float cpu_usage,int8_t network_valid,uint32_t t265_restart_cnt,uint8_t udist_mount_status,uint8_t oak_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN];
    _mav_put_float(buf, 0, t265_qw);
    _mav_put_float(buf, 4, t265_qx);
    _mav_put_float(buf, 8, t265_qy);
    _mav_put_float(buf, 12, t265_qz);
    _mav_put_float(buf, 16, t265_x);
    _mav_put_float(buf, 20, t265_y);
    _mav_put_float(buf, 24, t265_z);
    _mav_put_float(buf, 28, t265_vx);
    _mav_put_float(buf, 32, t265_vy);
    _mav_put_float(buf, 36, t265_vz);
    _mav_put_float(buf, 40, gnss_pose_x);
    _mav_put_float(buf, 44, gnss_pose_y);
    _mav_put_float(buf, 48, gnss_speed_x);
    _mav_put_float(buf, 52, gnss_speed_y);
    _mav_put_float(buf, 56, mv_pose_y);
    _mav_put_float(buf, 60, mv_speed_y);
    _mav_put_float(buf, 64, cpu_usage);
    _mav_put_uint32_t(buf, 68, t265_restart_cnt);
    _mav_put_uint16_t(buf, 72, t265_frame_id);
    _mav_put_uint16_t(buf, 74, gnss_frame_id);
    _mav_put_uint16_t(buf, 76, mv_frame_id);
    _mav_put_int8_t(buf, 78, t265_data_valid);
    _mav_put_int8_t(buf, 79, gnss_data_valid);
    _mav_put_int8_t(buf, 80, gnss_fix_type);
    _mav_put_int8_t(buf, 81, mv_data_valid);
    _mav_put_int8_t(buf, 82, network_valid);
    _mav_put_uint8_t(buf, 83, udist_mount_status);
    _mav_put_uint8_t(buf, 84, oak_status);

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), buf, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN);
#else
    mavlink_ibee_transmit_data_t packet;
    packet.t265_qw = t265_qw;
    packet.t265_qx = t265_qx;
    packet.t265_qy = t265_qy;
    packet.t265_qz = t265_qz;
    packet.t265_x = t265_x;
    packet.t265_y = t265_y;
    packet.t265_z = t265_z;
    packet.t265_vx = t265_vx;
    packet.t265_vy = t265_vy;
    packet.t265_vz = t265_vz;
    packet.gnss_pose_x = gnss_pose_x;
    packet.gnss_pose_y = gnss_pose_y;
    packet.gnss_speed_x = gnss_speed_x;
    packet.gnss_speed_y = gnss_speed_y;
    packet.mv_pose_y = mv_pose_y;
    packet.mv_speed_y = mv_speed_y;
    packet.cpu_usage = cpu_usage;
    packet.t265_restart_cnt = t265_restart_cnt;
    packet.t265_frame_id = t265_frame_id;
    packet.gnss_frame_id = gnss_frame_id;
    packet.mv_frame_id = mv_frame_id;
    packet.t265_data_valid = t265_data_valid;
    packet.gnss_data_valid = gnss_data_valid;
    packet.gnss_fix_type = gnss_fix_type;
    packet.mv_data_valid = mv_data_valid;
    packet.network_valid = network_valid;
    packet.udist_mount_status = udist_mount_status;
    packet.oak_status = oak_status;

        memcpy(_MAV_PAYLOAD_NON_CONST(msg), &packet, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN);
#endif

    msg->msgid = MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA;
    return mavlink_finalize_message_chan(msg, system_id, component_id, chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
}

/**
 * @brief Encode a ibee_transmit_data struct
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param msg The MAVLink message to compress the data into
 * @param ibee_transmit_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_encode(uint8_t system_id, uint8_t component_id, mavlink_message_t* msg, const mavlink_ibee_transmit_data_t* ibee_transmit_data)
{
    return mavlink_msg_ibee_transmit_data_pack(system_id, component_id, msg, ibee_transmit_data->t265_qw, ibee_transmit_data->t265_qx, ibee_transmit_data->t265_qy, ibee_transmit_data->t265_qz, ibee_transmit_data->t265_x, ibee_transmit_data->t265_y, ibee_transmit_data->t265_z, ibee_transmit_data->t265_vx, ibee_transmit_data->t265_vy, ibee_transmit_data->t265_vz, ibee_transmit_data->t265_frame_id, ibee_transmit_data->t265_data_valid, ibee_transmit_data->gnss_pose_x, ibee_transmit_data->gnss_pose_y, ibee_transmit_data->gnss_speed_x, ibee_transmit_data->gnss_speed_y, ibee_transmit_data->gnss_frame_id, ibee_transmit_data->gnss_data_valid, ibee_transmit_data->gnss_fix_type, ibee_transmit_data->mv_pose_y, ibee_transmit_data->mv_speed_y, ibee_transmit_data->mv_frame_id, ibee_transmit_data->mv_data_valid, ibee_transmit_data->cpu_usage, ibee_transmit_data->network_valid, ibee_transmit_data->t265_restart_cnt, ibee_transmit_data->udist_mount_status, ibee_transmit_data->oak_status);
}

/**
 * @brief Encode a ibee_transmit_data struct on a channel
 *
 * @param system_id ID of this system
 * @param component_id ID of this component (e.g. 200 for IMU)
 * @param chan The MAVLink channel this message will be sent over
 * @param msg The MAVLink message to compress the data into
 * @param ibee_transmit_data C-struct to read the message contents from
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_encode_chan(uint8_t system_id, uint8_t component_id, uint8_t chan, mavlink_message_t* msg, const mavlink_ibee_transmit_data_t* ibee_transmit_data)
{
    return mavlink_msg_ibee_transmit_data_pack_chan(system_id, component_id, chan, msg, ibee_transmit_data->t265_qw, ibee_transmit_data->t265_qx, ibee_transmit_data->t265_qy, ibee_transmit_data->t265_qz, ibee_transmit_data->t265_x, ibee_transmit_data->t265_y, ibee_transmit_data->t265_z, ibee_transmit_data->t265_vx, ibee_transmit_data->t265_vy, ibee_transmit_data->t265_vz, ibee_transmit_data->t265_frame_id, ibee_transmit_data->t265_data_valid, ibee_transmit_data->gnss_pose_x, ibee_transmit_data->gnss_pose_y, ibee_transmit_data->gnss_speed_x, ibee_transmit_data->gnss_speed_y, ibee_transmit_data->gnss_frame_id, ibee_transmit_data->gnss_data_valid, ibee_transmit_data->gnss_fix_type, ibee_transmit_data->mv_pose_y, ibee_transmit_data->mv_speed_y, ibee_transmit_data->mv_frame_id, ibee_transmit_data->mv_data_valid, ibee_transmit_data->cpu_usage, ibee_transmit_data->network_valid, ibee_transmit_data->t265_restart_cnt, ibee_transmit_data->udist_mount_status, ibee_transmit_data->oak_status);
}

/**
 * @brief Send a ibee_transmit_data message
 * @param chan MAVLink channel to send the message
 *
 * @param t265_qw  float
 * @param t265_qx  float
 * @param t265_qy  float
 * @param t265_qz  float
 * @param t265_x  float
 * @param t265_y  float
 * @param t265_z  float
 * @param t265_vx  float
 * @param t265_vy  float
 * @param t265_vz  float
 * @param t265_frame_id  uint16_t
 * @param t265_data_valid  int8_t
 * @param gnss_pose_x  float
 * @param gnss_pose_y  float
 * @param gnss_speed_x  float
 * @param gnss_speed_y  float
 * @param gnss_frame_id  uint16_t
 * @param gnss_data_valid  int8_t
 * @param gnss_fix_type  int8_t
 * @param mv_pose_y  float
 * @param mv_speed_y  float
 * @param mv_frame_id  uint16_t
 * @param mv_data_valid  int8_t
 * @param cpu_usage  float
 * @param network_valid  int8_t
 * @param t265_restart_cnt  uint32_t
 * @param udist_mount_status  uint8_t
 * @param oak_status  uint8_t
 */
#ifdef MAVLINK_USE_CONVENIENCE_FUNCTIONS

static inline void mavlink_msg_ibee_transmit_data_send(mavlink_channel_t chan, float t265_qw, float t265_qx, float t265_qy, float t265_qz, float t265_x, float t265_y, float t265_z, float t265_vx, float t265_vy, float t265_vz, uint16_t t265_frame_id, int8_t t265_data_valid, float gnss_pose_x, float gnss_pose_y, float gnss_speed_x, float gnss_speed_y, uint16_t gnss_frame_id, int8_t gnss_data_valid, int8_t gnss_fix_type, float mv_pose_y, float mv_speed_y, uint16_t mv_frame_id, int8_t mv_data_valid, float cpu_usage, int8_t network_valid, uint32_t t265_restart_cnt, uint8_t udist_mount_status, uint8_t oak_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char buf[MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN];
    _mav_put_float(buf, 0, t265_qw);
    _mav_put_float(buf, 4, t265_qx);
    _mav_put_float(buf, 8, t265_qy);
    _mav_put_float(buf, 12, t265_qz);
    _mav_put_float(buf, 16, t265_x);
    _mav_put_float(buf, 20, t265_y);
    _mav_put_float(buf, 24, t265_z);
    _mav_put_float(buf, 28, t265_vx);
    _mav_put_float(buf, 32, t265_vy);
    _mav_put_float(buf, 36, t265_vz);
    _mav_put_float(buf, 40, gnss_pose_x);
    _mav_put_float(buf, 44, gnss_pose_y);
    _mav_put_float(buf, 48, gnss_speed_x);
    _mav_put_float(buf, 52, gnss_speed_y);
    _mav_put_float(buf, 56, mv_pose_y);
    _mav_put_float(buf, 60, mv_speed_y);
    _mav_put_float(buf, 64, cpu_usage);
    _mav_put_uint32_t(buf, 68, t265_restart_cnt);
    _mav_put_uint16_t(buf, 72, t265_frame_id);
    _mav_put_uint16_t(buf, 74, gnss_frame_id);
    _mav_put_uint16_t(buf, 76, mv_frame_id);
    _mav_put_int8_t(buf, 78, t265_data_valid);
    _mav_put_int8_t(buf, 79, gnss_data_valid);
    _mav_put_int8_t(buf, 80, gnss_fix_type);
    _mav_put_int8_t(buf, 81, mv_data_valid);
    _mav_put_int8_t(buf, 82, network_valid);
    _mav_put_uint8_t(buf, 83, udist_mount_status);
    _mav_put_uint8_t(buf, 84, oak_status);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA, buf, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
#else
    mavlink_ibee_transmit_data_t packet;
    packet.t265_qw = t265_qw;
    packet.t265_qx = t265_qx;
    packet.t265_qy = t265_qy;
    packet.t265_qz = t265_qz;
    packet.t265_x = t265_x;
    packet.t265_y = t265_y;
    packet.t265_z = t265_z;
    packet.t265_vx = t265_vx;
    packet.t265_vy = t265_vy;
    packet.t265_vz = t265_vz;
    packet.gnss_pose_x = gnss_pose_x;
    packet.gnss_pose_y = gnss_pose_y;
    packet.gnss_speed_x = gnss_speed_x;
    packet.gnss_speed_y = gnss_speed_y;
    packet.mv_pose_y = mv_pose_y;
    packet.mv_speed_y = mv_speed_y;
    packet.cpu_usage = cpu_usage;
    packet.t265_restart_cnt = t265_restart_cnt;
    packet.t265_frame_id = t265_frame_id;
    packet.gnss_frame_id = gnss_frame_id;
    packet.mv_frame_id = mv_frame_id;
    packet.t265_data_valid = t265_data_valid;
    packet.gnss_data_valid = gnss_data_valid;
    packet.gnss_fix_type = gnss_fix_type;
    packet.mv_data_valid = mv_data_valid;
    packet.network_valid = network_valid;
    packet.udist_mount_status = udist_mount_status;
    packet.oak_status = oak_status;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA, (const char *)&packet, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
#endif
}

/**
 * @brief Send a ibee_transmit_data message
 * @param chan MAVLink channel to send the message
 * @param struct The MAVLink struct to serialize
 */
static inline void mavlink_msg_ibee_transmit_data_send_struct(mavlink_channel_t chan, const mavlink_ibee_transmit_data_t* ibee_transmit_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    mavlink_msg_ibee_transmit_data_send(chan, ibee_transmit_data->t265_qw, ibee_transmit_data->t265_qx, ibee_transmit_data->t265_qy, ibee_transmit_data->t265_qz, ibee_transmit_data->t265_x, ibee_transmit_data->t265_y, ibee_transmit_data->t265_z, ibee_transmit_data->t265_vx, ibee_transmit_data->t265_vy, ibee_transmit_data->t265_vz, ibee_transmit_data->t265_frame_id, ibee_transmit_data->t265_data_valid, ibee_transmit_data->gnss_pose_x, ibee_transmit_data->gnss_pose_y, ibee_transmit_data->gnss_speed_x, ibee_transmit_data->gnss_speed_y, ibee_transmit_data->gnss_frame_id, ibee_transmit_data->gnss_data_valid, ibee_transmit_data->gnss_fix_type, ibee_transmit_data->mv_pose_y, ibee_transmit_data->mv_speed_y, ibee_transmit_data->mv_frame_id, ibee_transmit_data->mv_data_valid, ibee_transmit_data->cpu_usage, ibee_transmit_data->network_valid, ibee_transmit_data->t265_restart_cnt, ibee_transmit_data->udist_mount_status, ibee_transmit_data->oak_status);
#else
    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA, (const char *)ibee_transmit_data, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
#endif
}

#if MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN <= MAVLINK_MAX_PAYLOAD_LEN
/*
  This variant of _send() can be used to save stack space by re-using
  memory from the receive buffer.  The caller provides a
  mavlink_message_t which is the size of a full mavlink message. This
  is usually the receive buffer for the channel, and allows a reply to an
  incoming message with minimum stack space usage.
 */
static inline void mavlink_msg_ibee_transmit_data_send_buf(mavlink_message_t *msgbuf, mavlink_channel_t chan,  float t265_qw, float t265_qx, float t265_qy, float t265_qz, float t265_x, float t265_y, float t265_z, float t265_vx, float t265_vy, float t265_vz, uint16_t t265_frame_id, int8_t t265_data_valid, float gnss_pose_x, float gnss_pose_y, float gnss_speed_x, float gnss_speed_y, uint16_t gnss_frame_id, int8_t gnss_data_valid, int8_t gnss_fix_type, float mv_pose_y, float mv_speed_y, uint16_t mv_frame_id, int8_t mv_data_valid, float cpu_usage, int8_t network_valid, uint32_t t265_restart_cnt, uint8_t udist_mount_status, uint8_t oak_status)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    char *buf = (char *)msgbuf;
    _mav_put_float(buf, 0, t265_qw);
    _mav_put_float(buf, 4, t265_qx);
    _mav_put_float(buf, 8, t265_qy);
    _mav_put_float(buf, 12, t265_qz);
    _mav_put_float(buf, 16, t265_x);
    _mav_put_float(buf, 20, t265_y);
    _mav_put_float(buf, 24, t265_z);
    _mav_put_float(buf, 28, t265_vx);
    _mav_put_float(buf, 32, t265_vy);
    _mav_put_float(buf, 36, t265_vz);
    _mav_put_float(buf, 40, gnss_pose_x);
    _mav_put_float(buf, 44, gnss_pose_y);
    _mav_put_float(buf, 48, gnss_speed_x);
    _mav_put_float(buf, 52, gnss_speed_y);
    _mav_put_float(buf, 56, mv_pose_y);
    _mav_put_float(buf, 60, mv_speed_y);
    _mav_put_float(buf, 64, cpu_usage);
    _mav_put_uint32_t(buf, 68, t265_restart_cnt);
    _mav_put_uint16_t(buf, 72, t265_frame_id);
    _mav_put_uint16_t(buf, 74, gnss_frame_id);
    _mav_put_uint16_t(buf, 76, mv_frame_id);
    _mav_put_int8_t(buf, 78, t265_data_valid);
    _mav_put_int8_t(buf, 79, gnss_data_valid);
    _mav_put_int8_t(buf, 80, gnss_fix_type);
    _mav_put_int8_t(buf, 81, mv_data_valid);
    _mav_put_int8_t(buf, 82, network_valid);
    _mav_put_uint8_t(buf, 83, udist_mount_status);
    _mav_put_uint8_t(buf, 84, oak_status);

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA, buf, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
#else
    mavlink_ibee_transmit_data_t *packet = (mavlink_ibee_transmit_data_t *)msgbuf;
    packet->t265_qw = t265_qw;
    packet->t265_qx = t265_qx;
    packet->t265_qy = t265_qy;
    packet->t265_qz = t265_qz;
    packet->t265_x = t265_x;
    packet->t265_y = t265_y;
    packet->t265_z = t265_z;
    packet->t265_vx = t265_vx;
    packet->t265_vy = t265_vy;
    packet->t265_vz = t265_vz;
    packet->gnss_pose_x = gnss_pose_x;
    packet->gnss_pose_y = gnss_pose_y;
    packet->gnss_speed_x = gnss_speed_x;
    packet->gnss_speed_y = gnss_speed_y;
    packet->mv_pose_y = mv_pose_y;
    packet->mv_speed_y = mv_speed_y;
    packet->cpu_usage = cpu_usage;
    packet->t265_restart_cnt = t265_restart_cnt;
    packet->t265_frame_id = t265_frame_id;
    packet->gnss_frame_id = gnss_frame_id;
    packet->mv_frame_id = mv_frame_id;
    packet->t265_data_valid = t265_data_valid;
    packet->gnss_data_valid = gnss_data_valid;
    packet->gnss_fix_type = gnss_fix_type;
    packet->mv_data_valid = mv_data_valid;
    packet->network_valid = network_valid;
    packet->udist_mount_status = udist_mount_status;
    packet->oak_status = oak_status;

    _mav_finalize_message_chan_send(chan, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA, (const char *)packet, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_MIN_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_CRC);
#endif
}
#endif

#endif

// MESSAGE IBEE_TRANSMIT_DATA UNPACKING


/**
 * @brief Get field t265_qw from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_qw(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  0);
}

/**
 * @brief Get field t265_qx from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_qx(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  4);
}

/**
 * @brief Get field t265_qy from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_qy(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  8);
}

/**
 * @brief Get field t265_qz from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_qz(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  12);
}

/**
 * @brief Get field t265_x from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_x(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  16);
}

/**
 * @brief Get field t265_y from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  20);
}

/**
 * @brief Get field t265_z from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_z(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  24);
}

/**
 * @brief Get field t265_vx from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_vx(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  28);
}

/**
 * @brief Get field t265_vy from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_vy(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  32);
}

/**
 * @brief Get field t265_vz from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_t265_vz(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  36);
}

/**
 * @brief Get field t265_frame_id from ibee_transmit_data message
 *
 * @return  uint16_t
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_get_t265_frame_id(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint16_t(msg,  72);
}

/**
 * @brief Get field t265_data_valid from ibee_transmit_data message
 *
 * @return  int8_t
 */
static inline int8_t mavlink_msg_ibee_transmit_data_get_t265_data_valid(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int8_t(msg,  78);
}

/**
 * @brief Get field gnss_pose_x from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_gnss_pose_x(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  40);
}

/**
 * @brief Get field gnss_pose_y from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_gnss_pose_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  44);
}

/**
 * @brief Get field gnss_speed_x from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_gnss_speed_x(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  48);
}

/**
 * @brief Get field gnss_speed_y from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_gnss_speed_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  52);
}

/**
 * @brief Get field gnss_frame_id from ibee_transmit_data message
 *
 * @return  uint16_t
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_get_gnss_frame_id(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint16_t(msg,  74);
}

/**
 * @brief Get field gnss_data_valid from ibee_transmit_data message
 *
 * @return  int8_t
 */
static inline int8_t mavlink_msg_ibee_transmit_data_get_gnss_data_valid(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int8_t(msg,  79);
}

/**
 * @brief Get field gnss_fix_type from ibee_transmit_data message
 *
 * @return  int8_t
 */
static inline int8_t mavlink_msg_ibee_transmit_data_get_gnss_fix_type(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int8_t(msg,  80);
}

/**
 * @brief Get field mv_pose_y from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_mv_pose_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  56);
}

/**
 * @brief Get field mv_speed_y from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_mv_speed_y(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  60);
}

/**
 * @brief Get field mv_frame_id from ibee_transmit_data message
 *
 * @return  uint16_t
 */
static inline uint16_t mavlink_msg_ibee_transmit_data_get_mv_frame_id(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint16_t(msg,  76);
}

/**
 * @brief Get field mv_data_valid from ibee_transmit_data message
 *
 * @return  int8_t
 */
static inline int8_t mavlink_msg_ibee_transmit_data_get_mv_data_valid(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int8_t(msg,  81);
}

/**
 * @brief Get field cpu_usage from ibee_transmit_data message
 *
 * @return  float
 */
static inline float mavlink_msg_ibee_transmit_data_get_cpu_usage(const mavlink_message_t* msg)
{
    return _MAV_RETURN_float(msg,  64);
}

/**
 * @brief Get field network_valid from ibee_transmit_data message
 *
 * @return  int8_t
 */
static inline int8_t mavlink_msg_ibee_transmit_data_get_network_valid(const mavlink_message_t* msg)
{
    return _MAV_RETURN_int8_t(msg,  82);
}

/**
 * @brief Get field t265_restart_cnt from ibee_transmit_data message
 *
 * @return  uint32_t
 */
static inline uint32_t mavlink_msg_ibee_transmit_data_get_t265_restart_cnt(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint32_t(msg,  68);
}

/**
 * @brief Get field udist_mount_status from ibee_transmit_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_transmit_data_get_udist_mount_status(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  83);
}

/**
 * @brief Get field oak_status from ibee_transmit_data message
 *
 * @return  uint8_t
 */
static inline uint8_t mavlink_msg_ibee_transmit_data_get_oak_status(const mavlink_message_t* msg)
{
    return _MAV_RETURN_uint8_t(msg,  84);
}

/**
 * @brief Decode a ibee_transmit_data message into a struct
 *
 * @param msg The message to decode
 * @param ibee_transmit_data C-struct to decode the message contents into
 */
static inline void mavlink_msg_ibee_transmit_data_decode(const mavlink_message_t* msg, mavlink_ibee_transmit_data_t* ibee_transmit_data)
{
#if MAVLINK_NEED_BYTE_SWAP || !MAVLINK_ALIGNED_FIELDS
    ibee_transmit_data->t265_qw = mavlink_msg_ibee_transmit_data_get_t265_qw(msg);
    ibee_transmit_data->t265_qx = mavlink_msg_ibee_transmit_data_get_t265_qx(msg);
    ibee_transmit_data->t265_qy = mavlink_msg_ibee_transmit_data_get_t265_qy(msg);
    ibee_transmit_data->t265_qz = mavlink_msg_ibee_transmit_data_get_t265_qz(msg);
    ibee_transmit_data->t265_x = mavlink_msg_ibee_transmit_data_get_t265_x(msg);
    ibee_transmit_data->t265_y = mavlink_msg_ibee_transmit_data_get_t265_y(msg);
    ibee_transmit_data->t265_z = mavlink_msg_ibee_transmit_data_get_t265_z(msg);
    ibee_transmit_data->t265_vx = mavlink_msg_ibee_transmit_data_get_t265_vx(msg);
    ibee_transmit_data->t265_vy = mavlink_msg_ibee_transmit_data_get_t265_vy(msg);
    ibee_transmit_data->t265_vz = mavlink_msg_ibee_transmit_data_get_t265_vz(msg);
    ibee_transmit_data->gnss_pose_x = mavlink_msg_ibee_transmit_data_get_gnss_pose_x(msg);
    ibee_transmit_data->gnss_pose_y = mavlink_msg_ibee_transmit_data_get_gnss_pose_y(msg);
    ibee_transmit_data->gnss_speed_x = mavlink_msg_ibee_transmit_data_get_gnss_speed_x(msg);
    ibee_transmit_data->gnss_speed_y = mavlink_msg_ibee_transmit_data_get_gnss_speed_y(msg);
    ibee_transmit_data->mv_pose_y = mavlink_msg_ibee_transmit_data_get_mv_pose_y(msg);
    ibee_transmit_data->mv_speed_y = mavlink_msg_ibee_transmit_data_get_mv_speed_y(msg);
    ibee_transmit_data->cpu_usage = mavlink_msg_ibee_transmit_data_get_cpu_usage(msg);
    ibee_transmit_data->t265_restart_cnt = mavlink_msg_ibee_transmit_data_get_t265_restart_cnt(msg);
    ibee_transmit_data->t265_frame_id = mavlink_msg_ibee_transmit_data_get_t265_frame_id(msg);
    ibee_transmit_data->gnss_frame_id = mavlink_msg_ibee_transmit_data_get_gnss_frame_id(msg);
    ibee_transmit_data->mv_frame_id = mavlink_msg_ibee_transmit_data_get_mv_frame_id(msg);
    ibee_transmit_data->t265_data_valid = mavlink_msg_ibee_transmit_data_get_t265_data_valid(msg);
    ibee_transmit_data->gnss_data_valid = mavlink_msg_ibee_transmit_data_get_gnss_data_valid(msg);
    ibee_transmit_data->gnss_fix_type = mavlink_msg_ibee_transmit_data_get_gnss_fix_type(msg);
    ibee_transmit_data->mv_data_valid = mavlink_msg_ibee_transmit_data_get_mv_data_valid(msg);
    ibee_transmit_data->network_valid = mavlink_msg_ibee_transmit_data_get_network_valid(msg);
    ibee_transmit_data->udist_mount_status = mavlink_msg_ibee_transmit_data_get_udist_mount_status(msg);
    ibee_transmit_data->oak_status = mavlink_msg_ibee_transmit_data_get_oak_status(msg);
#else
        uint8_t len = msg->len < MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN? msg->len : MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN;
        memset(ibee_transmit_data, 0, MAVLINK_MSG_ID_IBEE_TRANSMIT_DATA_LEN);
    memcpy(ibee_transmit_data, _MAV_PAYLOAD(msg), len);
#endif
}
